首先註冊,這個網站的會員,登陸並到這個頁面
https://opendata.cwa.gov.tw/dist/opendata-swagger.html#/%E9%A0%90%E5%A0%B1/get_v1_rest_datastore_F_C0032_001
登陸進去後,就可以選擇你需要的資料,並看到裡面的json檔,如下圖
可以把上面的json檔案全部複製起來,貼在底下的網站上,方便觀察,如下圖
http://json.parser.online.fr/
首先我們先到剛剛網站中間的部分,並把按旁邊的減號,把json縮減到最小,如上圖
首先先建立一個swift檔,然後看到剛剛的json檔,就一步一步比對最上層有一個success,restult,records,只有success是一個string的型別,其他兩個都有繼續包東西,程式如下
struct weatherData: Codable {
var success: String
var result: resultValue
var records: recordsValue
}
然後我們再把result旁邊的加號點開,如下圖
點開後,發現result裡面包著resource_id,fields,因為fields是用[ 7 ]包著,所以我們用一個array,程式如下
struct resultValue: Codable {
var resource_id: String
var fields: [fieldsValue]
}
接下來大家就一步一步慢慢比對著做囉!需要一點細心喔!
今天跟大家分享了如何把網站的json變成我們swift裡面的結構,今天又是充實的一天,明天我們將繼續推進專案的進度喔!
好啦,我都知道大家懶得一步一步慢慢比對啦,所以我把完整程式放到底下了
import Foundation
import CoreText
struct weatherData: Codable {
var success: String
var result: resultValue
var records: recordsValue
}
struct resultValue: Codable {
var resource_id: String
var fields: [fieldsValue]
}
struct fieldsValue: Codable {
var id: String
var type: String
}
struct recordsValue: Codable {
var datasetDescription: String
var location: [locationValue]
}
struct locationValue: Codable {
var locationName: String
var weatherElement: [weatherElementValue]
}
struct weatherElementValue: Codable {
var elementName: String
var time: [timeValue]
}
struct timeValue: Codable {
var startTime: String
var endTime: String
var parameter: ParameterValue
}
struct ParameterValue: Codable {
var parameterName: String
var parameterUnit: String?
var parameterValue: String?
}